#include<stdio.h>
#include<unistd.h>
#include <sys/types.h>
#include<stdlib.h>
int main()
{
//   while(1)
//   {
//    printf("I am a process. my id is:%d,my father id is :%d \n",getpid(),getppid());
//     sleep(1);
//   }
//\n")
 printf("I am a process. my id: %d,my father id: %d.\n",getpid(),getppid());
 pid_t id=fork();//fork()以该进程为父进程创建出子进程，并且有两个返回值
 //第一种情况fork函数调用失败时返回-1；第二种情况fork函数调用成功创建子进程时，父进程返回子进程的pid(pid指的是进程的编号)，子进程返回0。
 if(id==0)
 {
   //子进程
   while(1)
   {
       printf("I am child. my id: %d,my father id: %d.\n",getpid(),getppid());
       sleep(1);
   }
 }
   else if (id>0)
   {
   //father
   while(1)
   {
        printf("I am father. my id: %d,my father id: %d.\n",getpid(),getppid());
        sleep(1);
   }   
}
 else 
 {
  //子进程创建失败
 }
//fork之后代码共享，但是进程之间时独立的，故数据不能共享，数据是写时拷贝

   return 0;
 }
